home *** CD-ROM | disk | FTP | other *** search
/ Chip 2005 March / chip-cd_2005_03d.zip / 03d / Multimedia / AutoGK 1.60 / AutoGordianKnot.1.60.Setup.exe / VDubMod / VirtualDubMod.chm / scripts.js < prev    next >
Text File  |  2003-08-03  |  3KB  |  115 lines

  1. var TAG_FUNCTION = 'function';
  2. var TAG_TYPE = 'type';
  3. var TAG_PARAM = 'param';
  4. var TAG_VERSION = 'version';
  5.  
  6. document.writeln("    <style type=\"text/css\">");
  7. document.writeln("    <!--");
  8. document.writeln("." + TAG_FUNCTION + " { color: #A00000; font-weight: bold }");
  9. document.writeln("." + TAG_TYPE + " { color: #0000A0; font-weight: bold }");
  10. document.writeln("." + TAG_PARAM + " { color: #404040; font-weight: bold }");
  11. document.writeln("." + TAG_VERSION + " { color: #FF0000; font-weight: normal; background-color: #FFFF00 }");
  12. document.writeln("    -->");
  13. document.writeln("    </style>");
  14.  
  15. function trim(s) {
  16.   start = 0;
  17.   end = s.length;
  18.   while( (start<end) && (s.charAt(start)==' ') )
  19.     start++;
  20.   while( (start<end) && (s.charAt(end-1)==' ') )
  21.     end--;
  22.  
  23.   return s.substring(start, end);
  24. }
  25.  
  26. function format_tagged_value(tag_name, value) {
  27.   return "<span class='" + tag_name + "'>" + value + "</span>";
  28. }
  29.  
  30. function format_function(fnct) {
  31.   return format_tagged_value(TAG_FUNCTION, fnct);
  32. }
  33.  
  34. function format_param_type(param_type) {
  35.   return format_tagged_value(TAG_TYPE, param_type);
  36. }
  37.  
  38. function format_param_name(param_name) {
  39.   return format_tagged_value(TAG_PARAM, param_name);
  40. }
  41.  
  42. function format_version(ver) {
  43.   return format_tagged_value(TAG_VERSION, ver);
  44. }
  45.  
  46. function open_list() {
  47.   document.writeln('<ul style=\"margin-top: 0;margin-bottom: 5;margin-left: 15\">');
  48. }
  49.  
  50. function close_list() {
  51.   document.writeln('</ul>');
  52. }
  53.  
  54. function add_function(name, params, desc, need_version) {
  55.   params = trim(params);
  56.   _params = '';
  57.   _type = '';
  58.   _param = '';
  59.  
  60.   index = 0;
  61.   param_start = 0;
  62.   param_end = 0;
  63.   end = params.length;
  64.  
  65.   while(true) {
  66.     if( (index>=end) || (params.charAt(index)==',') ) {
  67.       if(index == param_start)
  68.         break;
  69.  
  70.       i = param_start;
  71.       while( (i<end) && (params.charAt(i)==' ') )
  72.         i++;
  73.       param_start = i;
  74.       i = index-1;
  75.       while( (i>param_start) && (params.charAt(i)==' ') )
  76.         i--;
  77.       param_end = i;
  78.       while( (i>param_start) && (params.charAt(i)!=' ') )
  79.         i--;
  80.  
  81.       if(i != param_start) {
  82.         _param = params.substring(i+1, param_end+1);
  83.         while( (i>=param_start) && (params.charAt(i)==' ') )
  84.           i--;
  85.         _type = params.substring(param_start, i+1);
  86.       } else
  87.         _type = params.substring(param_start, param_end+1);
  88.  
  89.       if( (_type && !_param) || (!_type && _param) ) {
  90.         alert('Warning : bad parameter given in function [' + name + '] (type=[' + _type + '], name=[' + _param + '])');
  91.         _params += format_param_type(_type) + format_param_name(_param);
  92.       } else
  93.         _params += format_param_type(_type) + ' ' + format_param_name(_param);
  94.  
  95.       if(index>=end)
  96.         break;
  97.  
  98.       _params += ', '
  99.  
  100.       _type = '';
  101.       _param = '';
  102.       param_start = index + 1;
  103.     }
  104.     
  105.     index++;
  106.   }
  107.  
  108.   _function = name + '(' + _params + ')';
  109.   document.write('<li><code>' + format_function(_function) + '</code>');
  110.   if(need_version)
  111.     document.write('<sup>' + format_version(need_version) + '</sup>');
  112.   if(desc)
  113.     document.write('<br />\n' + desc);
  114.   document.writeln('</li>');
  115. }